package com.clientes;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import org.json.JSONArray;
import org.json.JSONException;

import android.content.Context;
import android.util.Log;

import com.eventos.EventoBean;
import com.eventos.GestorEvento;
import com.eventssmartphone.JSONReader;
import com.eventssmartphone.JSONReaderListener;

public class GestorFavoritos {
	int idevento=0;	
	private static final GestorFavoritos gestor = new GestorFavoritos();
	
	public static GestorFavoritos getInstance(){
		return gestor;
	}
	
	public void dameEventos(int idcliente, Context context){
		JSONReader reader = new JSONReader();
		reader.setJSONReaderListener((JSONReaderListener)context);
		
		//jEvento=(reader.execute("http://200.16.7.112:3000/event_management/events/dameListaEventos/"+ String.valueOf(idTipo) +".json")).get();
		Log.i("cliente", "cliente:"+idcliente);
		reader.execute("http://200.16.7.112:3000/client_management/clients/dameEventosFavoritos/"+ String.valueOf(idcliente) +".json");

		
	}
	
	public List<EventoBean> procesarDameEventos(JSONArray jEvento, int idTipo){
		List<EventoBean> lstTipo= new ArrayList<EventoBean>();
		try{
			Log.i("cliente", "length:"+jEvento.length());
			for(int i=0;i < jEvento.length();i++){
				Log.i("cliente", "i:"+i);
				try {
					
					//Log.i("fav","idevento:"+jEvento.getJSONObject(i).getJSONObject("event").getInt("id"));
					idevento=jEvento.getJSONArray(i).getJSONObject(0).getJSONObject("event").getInt("id");
				} catch (Exception e) {
					
					//return lstTipo;
					// TODO: handle exception
				}
				
				EventoBean objEvento = new EventoBean();
				objEvento.setIdEvento(idevento);
				Log.i("fav","idevento:"+idevento);
				//objEvento.setTipo(idTipo);
				objEvento.setTipo(jEvento.getJSONArray(i).getJSONObject(0).getJSONObject("event").getInt("event_type_id"));
				objEvento.setTitEvento(jEvento.getJSONArray(i).getJSONObject(0).getJSONObject("event").getString("nombre"));
							
				String fInicio = jEvento.getJSONArray(i).getJSONObject(0).getJSONObject("event").getString("fecha_inicio");
				String fFin = jEvento.getJSONArray(i).getJSONObject(0).getJSONObject("event").getString("fecha_fin");		
				
				SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
				Date dateIni = formatter.parse(fInicio);
				Date dateFin = formatter.parse(fFin);
				
				formatter = new SimpleDateFormat("dd 'de' MMMM", new Locale("es_ES"));
				
				if (dateIni.equals(dateFin)){
					objEvento.setFechaEvento(formatter.format(dateIni));
				}else{
					objEvento.setFechaEvento("Del " + formatter.format(dateIni) + " al " +formatter.format(dateFin));
				}
				
				objEvento.setLugarEvento(jEvento.getJSONArray(i).getJSONObject(2).getString("ambiente_nombre"));
	
				objEvento.setUrlImagen("http://" +jEvento.getJSONArray(i).getJSONObject(1).getString("ruta"));
				//objEvento.setUrlImagen("http://200.16.7.112:3000/event/imagen_publicitaria/5/Pantallazo-1.png");
				lstTipo.add(objEvento);
				
			}	
			return lstTipo;
		}catch(JSONException e){
			Log.e("log_tag", "Error parsing data "+e.toString());
			return null;
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
	
	public void dameEventosSearch(String parametro, Context context){
		JSONReader reader = new JSONReader();
		reader.setJSONReaderListener((JSONReaderListener)context);
		
		reader.execute("http://200.16.7.112:3000/event_management/events/buscarEventos/"+ parametro +".json");
		
	}
	
	public List<EventoBean> procesarDameEventosSearch(JSONArray jEvento, String parametro){
		List<EventoBean> lstTipo= new ArrayList<EventoBean>();
		try{
			for(int i=0;i < jEvento.length();i++){
			
			EventoBean objEvento = new EventoBean();
			objEvento.setIdEvento(jEvento.getJSONObject(i).getInt("event_id"));
			objEvento.setTipo(jEvento.getJSONObject(i).getInt("event_type_id"));
			objEvento.setTitEvento(jEvento.getJSONObject(i).getString("nombre"));
			
			String fInicio = jEvento.getJSONObject(i).get("fecha_inicio").toString();
			String fFin = jEvento.getJSONObject(i).get("fecha_fin").toString();		
			
			SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
			Date dateIni = formatter.parse(fInicio);
			Date dateFin = formatter.parse(fFin);
			
			formatter = new SimpleDateFormat("dd 'de' MMMM", new Locale("es_ES"));
			
			if (dateIni.equals(dateFin)){
				objEvento.setFechaEvento(formatter.format(dateIni));
			}else{
				objEvento.setFechaEvento("Del " + formatter.format(dateIni) + " al " +formatter.format(dateFin));
			}
			
			objEvento.setLugarEvento(jEvento.getJSONObject(i).getString("ambiente_nombre"));
			
			objEvento.setUrlImagen("http://" +jEvento.getJSONObject(i).getString("imagen_publicitaria"));

			lstTipo.add(objEvento);
			
			}	
			return lstTipo;
		}catch(JSONException e){
			Log.e("log_tag", "Error parsing data "+e.toString());
			return null;
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}


}
